Various types of applications benefit from development by third parties adding functionality to the original application product. Applications are generally no longer defined by the features only in the developed product. One example of such applications are games operated on consoles, with companion or “secondary” applications operated on smart phones or tablets. Halo Waypoint is one such example of a smartphone application that interacts with the Halo game software on a different processing device—for example any of the Xbox systems—to provide experiences beyond the core Halo gameplay.
One challenge with implementing secondary application is that functionality for the secondary product is usually specially defined in the primary application during the development. This limits flexibility for secondary developers to provide additional functionality after launch of the primary product. In addition, only those scenarios provided by the developer of the host product are supported. Finally, the developers of the host product may want an easier way to add functionality to their own product in a way that does not require this extra functionality to be tightly coupled to—or even specifically supported by—the host product itself.